A spreadsheet program is a computer application that displays multiple cells that together make up a grid consisting of rows and columns, called a spreadsheet. Each cell contains either alphanumeric text or numeric values. A cell may alternatively contain a formula that defines how the contents of that cell are to be calculated from the contents of any other cell (or combination of cells) each time any cell is updated. Spreadsheets are frequently used for financial information because of their ability to recalculate the entire sheet automatically after a change to a single cell. In addition, many spreadsheet programs store multiple related spreadsheets together in a single data file, called a workbook.
As the usefulness of spreadsheets has increased, users have demanded ever-larger spreadsheets to hold more and more complex information. For example, based on user demand, Microsoft Excel 2007 increased the number of allowable columns from 256 to 16,384 and the number of allowable rows from 65,536 to 1,048,576 over the previous version. This means that a single worksheet can now have as many as 17 billion cells. In addition, a workbook in Microsoft Excel 2007 may have many spreadsheets within it (limited only by available memory), for a possible total of trillions of cells in a single workbook.
An essential part of everyday work with spreadsheets is moving around within the spreadsheets to edit and inspect cells. These movements are fundamental to working with spreadsheets and occur very frequently, such as when editing data, auditing spreadsheet formulas, or modifying the spreadsheet program. Even most trivial cell formulas contain one or more references to other cells. Understanding the value in a cell often involves navigating to referenced cells and then going back, oftentimes repeatedly.
To navigate to a cell, users have to read the address of the referenced cell and then move to that address themselves by, for example, clicking the mouse. This is an error-prone process. For example, the user could read the address incorrectly or simply click the wrong cell. Worse, when going back to the original cell that contained the reference, the user has to remember the address of that cell and, again, move there manually. In particular, in large spreadsheets, this process can be very tiresome (since it often involves scrolling) and frustrating. Given the enormous size of many modern spreadsheets, users spend a lot of time identifying and navigating to important data to complete daily tasks. In addition, a computer display is often able to show only a few hundred cells at a time to allow the user to read the contents of the cells. Thus, the user may have to scan through many screens of data to find the data that is most relevant to the user. All of this effort distracts the user from the task that the user is concerned with and greatly reduces the efficiency of working with spreadsheets.